package com.blog.util;

/**
 * @author 师晓峰
 * @version V1.0
 * @date 2023/9/15 0:01
 * @Description: 翻页工具类
 */
public class PageUtil {

    /**
     * 翻页方法
     *
     * @param targetUrl
     * @param totalNum
     * @param pageSize
     * @param param
     * @return
     */
    public static String genPagination(String targetUrl, long totalNum, int currentPage, int pageSize, String param) {
        if (totalNum == 0) {
            return "为查询到数据";
        }
        // 总共页数
        long totalPage =  1L;
        if (totalNum % pageSize  == 0){
            totalPage = totalNum / pageSize;
        }else {
            totalPage = totalNum / pageSize + 1L;
        }

        StringBuilder pageCode = new StringBuilder();
        pageCode.append("<li><a href='"+ targetUrl + "?page=1&" + param + "'>首页</a></li>");
        // 显示上一页
          // 当前页面不是第一页
        if (currentPage > 1) {
            pageCode.append("<li><a href='" + targetUrl + "?page=" + (currentPage - 1) + "&" + param + "'>上一页</a></li>");
        } else {  // 当前页面是第一页  不能点击
            pageCode.append("<li  class='disable' ><a href='#'>上一页</a></li>");

        }
        // 显示页数
        for (int i = 1; i <=totalPage; i++) {
            if (i == currentPage) {
                pageCode.append("<li class='active'><a href='" + targetUrl + "?page=" + i + "&" + param + "'>" + i + "</a></li>");
            }else{
                pageCode.append("<li><a href='" + targetUrl + "?page=" + i + "&" + param + "'>" + i + "</a></li>");
            }
        }

        // 显示下一页
        if (currentPage < totalPage){
            pageCode.append("<li><a href='" + targetUrl + "?page=" + (currentPage + 1) + "&" + param + "'>下一页</a></li>");
        } else {  // 当前页面是第一页  不能点击
            pageCode.append("<li  class='disable' ><a href='#'>下一页</a></li>");
        }
        // 尾页
        pageCode.append("<li><a href='"+targetUrl+"?page="+totalPage+"&"+param+"'>尾页</a></li>");

        return pageCode.toString();
    }

}
